/**
 * 安全转换为 Date 对象（自动处理iOS/Android格式差异）
 */
export function toDate(input: string | number | Date): Date {
  const parsed = new Date(typeof input === 'string'
    ? input.replace(/-/g, '/')
    : input)
  return Number.isNaN(parsed.getTime()) ? new Date() : parsed
}

/**
 * 格式化日期为指定字符串
 */
export function formatDate(
  source: string | number | Date,
  format = 'YYYY-MM-DD',
): string {
  const date = toDate(source)

  return format
    .replace('YYYY', String(date.getFullYear()))
    .replace('MM', String(date.getMonth() + 1).padStart(2, '0'))
    .replace('DD', String(date.getDate()).padStart(2, '0'))
    .replace('HH', String(date.getHours()).padStart(2, '0'))
    .replace('mm', String(date.getMinutes()).padStart(2, '0'))
}
